package com.deliccio.dao.impl;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.deliccio.connect.DAO;
import com.deliccio.dao.MesaDAO;
import com.deliccio.entitys.Estadosgenerales;
import com.deliccio.entitys.Mesa;
import com.deliccio.entitys.Pedidos;
import com.deliccio.entitys.Sucursales;

@Repository("MesaDAO")
public class MesaDAOImpl extends DAO<Mesa> implements MesaDAO{

	@Override
	public List<Mesa> obtenerMesaPorSucursal(int idSucursal){		
		sqlQuery=	" select m " +
					" from Mesa m where m.sucursal.id=:idSucursal";
		q=em.createQuery(sqlQuery);
		q.setParameter("idsucursal",idSucursal);
		return q.getResultList();
	}

	@Override
	public Mesa buscarxId(int idmesa) {
		sqlQuery=" select m from Mesa m where m.id =:idmesa ";		
		q=em.createQuery(sqlQuery);
		q.setParameter("idmesa",idmesa);
		q.setMaxResults(1);
		return (Mesa) q.getSingleResult();
	}


	@Override
	public int generarNumero(int idsucursal) {
		sqlQuery=" select max(m.numero) from Mesa m where m.sucursales.id =:idsucursal ";		
		q=em.createQuery(sqlQuery);
		q.setParameter("idsucursal",idsucursal);
		Integer numero =  (Integer) q.getSingleResult();
		if(numero != 0)
			return numero;
		else
			return 1;		
	}
//select * from  mesa mesa where idmesa in ( select idmesa from pedido_mesa where idpedido = 55   ) ;
	@Override
	public List<Mesa> obtenerMesasPorPedido(Pedidos pedidos){
	sqlQuery=	" select m from Mesa m where m.id>0 and m.id in ( select pm.pedidoMesaPK.idmesa from PedidoMesa pm where pm.pedidoMesaPK.idpedido=:pedido )";
	q=em.createQuery(sqlQuery);
	q.setParameter("pedido",pedidos.getId());
	return q.getResultList();
	}


	

}
